﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CapaLogica.CL.Entrada;
using CapaLogica.CL.ComentarioEntrada;
using CapaLogica.CL.Blog;

namespace TestCL.PruebasRoger
{   
    /// <summary>
    /// 
    /// </summary>
    [TestClass]
    public class PruebasEntradas
    {
        [TestMethod]
        public void crearEntrada()
        {
            int prueba;

            //variables
            string pTitulo = "PruebaTest", comentario = "Esto es un test 3";
            int idBlog = 6;

            prueba = GestorEntrada.crearEntrada(pTitulo, comentario, idBlog);
            Assert.IsTrue(sirve(prueba));
        }

        public bool sirve(int numero)
        {
            if (numero > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    

    /// <summary>
    /// 
    /// </summary>
    [TestMethod]
        public void consultarEntrada()
        {
            Dictionary<String,Object> prueba;

            int idEntrada = 2;

            prueba = GestorEntrada.consultarEntrada(idEntrada);
            Assert.IsNotNull("Prueba exitosa consultar entrada");
        }
    
    /// <summary>
    /// 
    /// </summary>
    [TestMethod]
        public void buscarComentarioEntrada()
        {
            List<Dictionary<String,String>> prueba;

            int idEntrada = 2;

            prueba = GestorComentarioEntrada.buscarComentariosEntrada(idEntrada);
            Assert.IsNotNull("Prueba exitosa buscar comentario entrada");
        }


    /// <summary>
    /// 
    /// </summary>
    [TestMethod]
    public void listarEntradasBlog()
        {
        List<Dictionary<String, Object>> prueba;

        int idBlog = 2;

        prueba = GestorEntrada.listarEntradasBlog(idBlog);
        Assert.IsNotNull("Prueba exitosa buscar entradas de un blog");
        }



    /// <summary>
    /// 
    /// </summary>
    [TestMethod]
    public void listarComentariosEntrada()
        {
        List<Dictionary<String, object>> prueba;

        int idEntrada = 2;

        prueba = GestorEntrada.listarComentariosEntrada(idEntrada);
        Assert.IsNotNull("Prueba exitosa listar los comentarios de entrada");
        }

    /// <summary>
    /// 
    /// </summary>
    [TestMethod]
    public void ModificarEntrada()
        {
        Boolean prueba;
        String titulo = "Prueba Exitosa", comentario = "Pruebas modificar una entrada";
        int idEntrada = 2;

        prueba = GestorEntrada.modificarEntrada(idEntrada,  titulo, comentario);
        Assert.IsTrue(prueba, "Prueba Modificar Exitoso");
        }

    /// <summary>
    /// 
    /// </summary>
    [TestMethod]
    public void asignarCalificacionEntrada()
        {
            Boolean prueba;
            int idEntrada = 2, nota = 5;

            prueba = GestorEntrada.asignarCalificacionEntrada(idEntrada,nota);
            Assert.IsNotNull(prueba, "Prueba de Asignación de calificación exitosa");
        }

    /// <summary>
    /// 
    /// </summary>
    [TestMethod]
    public void eliminarComentarioEntradaBlog()
        {
            Boolean prueba;
            int idEntrada = 2;

            prueba = GestorComentarioEntrada.eliminarComentarioEntrada(idEntrada);
            Assert.AreEqual(1,prueba);
        }



    /// <summary>
    /// 
    /// </summary>
    [TestMethod]
    public void eliminarEntradaBlog()
        {
            Boolean prueba;
            int idEntrada = 2;

            prueba = GestorEntrada.eliminarEntradaBlog(idEntrada);
            Assert.IsTrue(prueba, "Prueba de eliminar entrada blog exitosa");
        }



    

    /// <summary>
    /// 
    /// </summary>
    [TestMethod]
    public void asignarCalificacionEntradaBlog()
        {
            string prueba;
            int idEntrada = 2, idUsuario=2;
            double nota = 10;

            prueba = GestorEntrada.asignarCalificacionEntradaBlog(idEntrada,nota,idUsuario);
            Assert.AreEqual("¡La Calificación ha sido Asignada!",prueba);
        }


    }

}
